เมนูนำทาง
แถวคอยลำดับความสำคัญ ตัวอย่างการเขียนโปรแกรม (ภาษา C++)#include <bits/stdc++.h>using namespace std; class node{public: int age; string name; node(int a, string b){ age = a; name = b; }};bool operator<(const node& a, const node& b) { node temp1=a,temp2=b; if(a.age != b.age) return a.age > b.age; else{ return temp1.name.append(temp2.name) > temp2.name.append(temp1.name); }}int main(){ priority_queue<node> pq; node b(23,"Somchai"); node a(22,"Pongsak"); node c(22,"Manee"); pq.push(b); pq.push(a); pq.push(c); int size = pq.size(); for (int i = 0; i < size; ++i) { cout<<pq.top().age<<" "<<pq.top().name<<"\n"; pq.pop(); }}
จากโปรแกรมข้างต้น เราจะทำการสร้าง แถวคอย โดยโปรแกรมมีเงื่อนไขว่า ใครที่อายุ(Age)น้อยที่สุด จะถูกเรียกชื่อก่อนเสมอ โดยหากมีหลายคนที่อายุเท่ากัน คนที่ถูกเพิ่มเข้าไปในคิวภายหลังจากถูกเรียกก่อนเสมอ
22 Manee
22 Pongsak
23 Somchai
จากผลการทำงานของโปรแกรมข้างต้น จะสังเกตได้ว่า ถึงแม้ Somchai จะมาก่อน แต่ว่าจะถูกเรียกท้ายสุดเพราะอายุมากที่สุด ส่วน Manee จะถูกเรียกเป็นอันดับแรก ถึงแม้ว่าจะอายุเท่ากันกับ Pongsak แต่ว่า Manee มาทีหลังสุด ดังนั้นจึงได้ความสำคัญมากกว่า Pongsak ตามหลักการของ "แถวคอยลำดับความสำคัญ (Priority queue)"
เมนูนำทาง
แถวคอยลำดับความสำคัญ ตัวอย่างการเขียนโปรแกรม (ภาษา C++)ใกล้เคียง
แถวคอย แถวคอยลำดับความสำคัญ แถวคอยสองหน้า แถวตอนแหล่งที่มา
WikiPedia: แถวคอยลำดับความสำคัญ